Network switching devices can be implemented as interconnected sub-networks that connect the external input and output ports of these network switching devices. These network switching devices, such as routers or switches, may exhibit external port-to-port dependencies that may generate deadlocks. External port-to-port dependencies may determine the success of a packet received via a particular external input port and desiring to exit the network switching device on a particular external output port that is not permanently dependent on the success of another packet received via a different external input port and exiting through a different external output port of the same network switching device. In particular, high-radix switching devices may be difficult to implement since on-chip requirements may grow with a polynomial factor. A network switching device may be implemented as a hierarchical switching device to reduce the size needed for implementation but these inner hierarchical topologies may present external port-to-port dependencies. Although hierarchical switching devices can be overprovisioned to remove all port-to-port dependencies, this overprovisioning may waste bandwidth within the switching device. Alternatively, hierarchical switching devices may allow port-to-port dependencies and implement a routing algorithm that provides enough virtual channels to remain deadlock free, but this may waste resources too.